//
// Created by cy664 on 2024-01-17.
//

#include <windows.h>
#include <QDateTime>
#include <QTimeZone>
#include <QTextCodec>
#include "ConsoleDemo.h"

/// QDatetime 时区
void DemoQDateTimeTZ() {
    auto dt = QDateTime{QDate{2024, 1, 16}, QTime{21, 5, 13}};
    dt.setTimeZone(QTimeZone::utc());
    auto str = dt.toString("yyyy-MM-dd hh:mm:ss");
    qDebug("utc time = %s", str.toStdString().c_str());
    auto t2 = dt.toLocalTime().toString("yyyy-MM-dd hh:mm:ss");
    qDebug("localtime = %s", t2.toStdString().c_str());

//    SYSTEMTIME st;
//    GetLocalTime(&st);
//    st.wMinute=15;
//    auto r = SetLocalTime(&st);
//    if (!r){
//        ui->txtHello->setText("完成时间设置");
//    } else{
//        ui->txtHello->setText(str);
//    }

}

/// QDatetime 减法 t1 - t0 返回的单位是毫秒
void DemoQDateTimeJF(){
    auto tNow = QDateTime::currentDateTime();
    auto t0 = tNow.addSecs(10);
    auto n = (t0 - tNow).count();
    qDebug("t0 - tNow = %dms", n);
}

/// 汉字编码
void DemoHzCode(){
    QByteArray buf{};

    QString str{"中"};
    QTextCodec *codec4gbk = QTextCodec::codecForName("GBK");    //获取qt提供的gbk的解码器
    QByteArray bufStr = codec4gbk->fromUnicode(str);

    // 5A 02 FF FF FF FF E0 02 D6 D0 E0
    buf += 0x5A;
    buf += 2;
    buf += 0xFF;
    buf += bufStr;

    qDebug("中的编码 = %s", buf.toHex().toUpper().toStdString().c_str());
}

